/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.gob.mh.dgii.ssc.ruc.form;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import javax.validation.Valid;
import sv.gob.mh.dgii.model.DeRucPerOpcCam;
import sv.gob.mh.dgii.model.DeRucPerfil;
import sv.gob.mh.dgii.model.RcActEco;
import sv.gob.mh.dgii.model.RcActEcoTmp;
import sv.gob.mh.dgii.model.RcDocIdentidad;
import sv.gob.mh.dgii.model.RcDomicilio;
import sv.gob.mh.dgii.model.RcDomicilioTmp;
import sv.gob.mh.dgii.model.RcNomComerc;
import sv.gob.mh.dgii.model.RcRepresentante;
import sv.gob.mh.dgii.model.RcRepresentanteTmp;
import sv.gob.mh.dgii.model.RcRuc;
import sv.gob.mh.dgii.model.RcRucTmp;
import sv.gob.mh.dgii.model.RcSocio;
import sv.gob.mh.dgii.model.RcSocioTmp;
import sv.gob.mh.dgii.model.RcTramiteTmp;
import sv.gob.mh.dgii.model.TbActEco;
import sv.gob.mh.dgii.model.TbDepartamento;
import sv.gob.mh.dgii.model.TbDocIdentidad;
import sv.gob.mh.dgii.model.TbMunicipio;
import sv.gob.mh.dgii.model.TbPais;
import sv.gob.mh.dgii.model.TbRepresentante;
import sv.gob.mh.dgii.model.pojos.menu.MensajeDinamico;
import sv.gob.mh.dgii.model.pojos.ruc.OpcionContribuyente;
import sv.gob.mh.dgii.ssc.controller.configuration.BasicViewForm;

/**
 *
 * @author Saul.Ponce
 */
public class ActualizarRucForm extends BasicViewForm {

    @Valid
    private RcRuc contribuyente;
    private RcRucTmp contribuyenteTmp;
    private RcDomicilio domicilio;
    private List<TbDepartamento> departamentos;
    private List<TbMunicipio> municipios;
    private List<TbPais> pais;
    private List<TbActEco> actEco;
    private List<TbDocIdentidad> docIden;
    private List<TbRepresentante> representantes;
    private byte[] fichero;
    private DeRucPerfil perfilContribuyente;
    private List<OpcionContribuyente> opcionesContribuyente;
    private OpcionContribuyente opcionSeleccionada;
    private boolean camposCargados;
    private List<MensajeDinamico> mensajesMenuPrincipal;
    private List<DeRucPerOpcCam> camposPorOpcion;
    
    //Documento de identidad/constitucion
    private String tipoDocumento;
    private String numeroDocumento;
    private String importador;
    private String capitalSocial;
    //Domicilios
    private String direccionNotificaciones;
    private String direccionCasaMatriz;
    //Representante legal o apoderado
    private String nitRepresentante;
    private String tipoDocRepresentante;
    private String numeroDocRepresentante;
    private String tipoRepresentante;
    private String docAcreRepresentante;
    private String numDocAcredita;
    //Datos accionistas,socios o cooperados
    private String nitSocios;
    private String participacion;
    private String nombreComercial;

    
    
    
    
    
    //Para almacenamiento temporal
    private RcActEco actividadEconomica;
    private RcSocio socio;
    private RcRepresentante representante;

    public RcRepresentante getRepresentante() {
        return representante;
    }

    public void setRepresentante(RcRepresentante representante) {
        this.representante = representante;
    }

    public byte[] getFichero() {
        return fichero;
    }

    public void setFichero(byte[] fichero) {
        this.fichero = fichero;
    }


    public List<TbRepresentante> getRepresentantes() {
        return representantes;
    }

    public void setRepresentantes(List<TbRepresentante> representantes) {
        this.representantes = representantes;
    }

    public String getNombreComercial() {
        return nombreComercial;
    }

    public void setNombreComercial(String nombreComercial) {
        this.nombreComercial = nombreComercial;
    }

    public RcRucTmp getContribuyenteTmp() {
        return contribuyenteTmp;
    }

    public void setContribuyenteTmp(RcRucTmp contribuyenteTmp) {
        this.contribuyenteTmp = contribuyenteTmp;
    }

    public List<TbDocIdentidad> getDocIden() {
        return docIden;
    }

    public void setDocIden(List<TbDocIdentidad> docIden) {
        this.docIden = docIden;
    }

    public List<TbActEco> getActEco() {
        return actEco;
    }

    public void setActEco(List<TbActEco> actEco) {
        this.actEco = actEco;
    }

    public List<TbPais> getPais() {
        return pais;
    }

    public void setPais(List<TbPais> pais) {
        this.pais = pais;
    }

    public String getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(String tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public String getNumeroDocumento() {
        return numeroDocumento;
    }

    public void setNumeroDocumento(String numeroDocumento) {
        this.numeroDocumento = numeroDocumento;
    }

    public String getImportador() {
        return importador;
    }

    public void setImportador(String importador) {
        this.importador = importador;
    }

    public String getCapitalSocial() {
        return capitalSocial;
    }

    public void setCapitalSocial(String capitalSocial) {
        this.capitalSocial = capitalSocial;
    }

    public String getDireccionNotificaciones() {
        return direccionNotificaciones;
    }

    public void setDireccionNotificaciones(String direccionNotificaciones) {
        this.direccionNotificaciones = direccionNotificaciones;
    }

    public String getDireccionCasaMatriz() {
        return direccionCasaMatriz;
    }

    public void setDireccionCasaMatriz(String direccionCasaMatriz) {
        this.direccionCasaMatriz = direccionCasaMatriz;
    }


    
    
    public String getNitRepresentante() {
        return nitRepresentante;
    }

    public void setNitRepresentante(String nitRepresentante) {
        this.nitRepresentante = nitRepresentante;
    }

    public String getTipoDocRepresentante() {
        return tipoDocRepresentante;
    }

    public void setTipoDocRepresentante(String tipoDocRepresentante) {
        this.tipoDocRepresentante = tipoDocRepresentante;
    }

    public String getNumeroDocRepresentante() {
        return numeroDocRepresentante;
    }

    public void setNumeroDocRepresentante(String numeroDocRepresentante) {
        this.numeroDocRepresentante = numeroDocRepresentante;
    }

    public String getTipoRepresentante() {
        return tipoRepresentante;
    }

    public void setTipoRepresentante(String tipoRepresentante) {
        this.tipoRepresentante = tipoRepresentante;
    }

    public String getDocAcreRepresentante() {
        return docAcreRepresentante;
    }

    public void setDocAcreRepresentante(String docAcreRepresentante) {
        this.docAcreRepresentante = docAcreRepresentante;
    }

    public String getNumDocAcredita() {
        return numDocAcredita;
    }

    public void setNumDocAcredita(String numDocAcredita) {
        this.numDocAcredita = numDocAcredita;
    }

    public String getNitSocios() {
        return nitSocios;
    }

    public void setNitSocios(String nitSocios) {
        this.nitSocios = nitSocios;
    }

    public String getParticipacion() {
        return participacion;
    }

    public void setParticipacion(String participacion) {
        this.participacion = participacion;
    }

    public List<MensajeDinamico> getMensajesMenuPrincipal() {
        return mensajesMenuPrincipal;
    }

    public void setMensajesMenuPrincipal(List<MensajeDinamico> mensajesMenuPrincipal) {
        this.mensajesMenuPrincipal = mensajesMenuPrincipal;
    }

    public DeRucPerfil getPerfilContribuyente() {
        return perfilContribuyente;
    }

    public void setPerfilContribuyente(DeRucPerfil perfilContribuyente) {
        this.perfilContribuyente = perfilContribuyente;
    }

    public OpcionContribuyente getOpcionSeleccionada() {
        return opcionSeleccionada;
    }

    public void setOpcionSeleccionada(OpcionContribuyente opcionSeleccionada) {
        this.opcionSeleccionada = opcionSeleccionada;
    }

    public List<DeRucPerOpcCam> getCamposPorOpcion() {
        return camposPorOpcion;
    }

    public void setCamposPorOpcion(List<DeRucPerOpcCam> camposPorOpcion) {
        this.camposPorOpcion = camposPorOpcion;
    }

    public RcSocio getSocio() {
        return socio;
    }

    public void setSocio(RcSocio socio) {
        this.socio = socio;
    }

    public boolean isCamposCargados() {
        return camposCargados;
    }

    public void setCamposCargados(boolean camposCargados) {
        this.camposCargados = camposCargados;
    }
    
    
    

    
    
  
    

    /**
     * @return the contribuyente
     */
    public RcRuc getContribuyente() {
        return contribuyente;
    }

    /**
     * @param contribuyente the contribuyente to set
     */
    public void setContribuyente(RcRuc contribuyente) {
        this.contribuyente = contribuyente;
    }

    /**
     * @return the domicilio
     */
    public RcDomicilio getDomicilio() {
        return domicilio;
    }

    /**
     * @param domicilio the domicilio to set
     */
    public void setDomicilio(RcDomicilio domicilio) {
        this.domicilio = domicilio;
    }

    public final void clearForm() {
        contribuyente = new RcRuc();
        contribuyente.setRcNomComercs(new HashSet<RcNomComerc>());
        contribuyente.getRcNomComercs().add(new RcNomComerc());

        // en la vista se puede acceder al atributo contribuyente.rcNomComers[0]

        // TODO: in controller contribuyente.setTbPais(EL SALVADOR);
        // munic & depto
        contribuyente.setTbMunicipio(new TbMunicipio());
        contribuyente.getTbMunicipio().setTbDepartamento(new TbDepartamento());
        //...

    }

    public List<TbDepartamento> getDepartamentos() {
        return departamentos;
    }

    public void setDepartamentos(List<TbDepartamento> departamentos) {
        this.departamentos = departamentos;
    }

    /**
     * @return the municipios
     */
    public List<TbMunicipio> getMunicipios() {
        return municipios;
    }

    /**
     * @param municipios the municipios to set
     */
    public void setMunicipios(List<TbMunicipio> municipios) {
        this.municipios = municipios;
    }

    public RcActEco getActividadEconomica() {
        return actividadEconomica;
    }

    public void setActividadEconomica(RcActEco actividadEconomica) {
        this.actividadEconomica = actividadEconomica;
    }

    public List<OpcionContribuyente> getOpcionesContribuyente() {
        return opcionesContribuyente;
    }

    public void setOpcionesContribuyente(List<OpcionContribuyente> opcionesContribuyente) {
        this.opcionesContribuyente = opcionesContribuyente;
    }
    
    
    
}